package com.lvy.hczn.front.system.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lvy.hczn.front.common.core.text.Convert;
import com.lvy.hczn.front.common.exception.UtilException;
import com.lvy.hczn.front.system.domain.business.ProductionProcessingType;
import com.lvy.hczn.front.system.mapper.ProductionProcessingTypeMapper;
import com.lvy.hczn.front.system.service.IProductionProcessingTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 生产加工任务绑定Service业务层处理
 *
 * @author ruoyi
 * @date 2024-12-23
 */
@Service
public class ProductionProcessingTypeServiceImpl extends ServiceImpl<ProductionProcessingTypeMapper, ProductionProcessingType> implements IProductionProcessingTypeService {

    @Autowired
    private ProductionProcessingTypeMapper productionProcessingTypeMapper;

    /**
     * 查询生产加工任务绑定
     *
     * @param id 生产加工任务绑定主键
     * @return 生产加工任务绑定
     */
    @Override
    public ProductionProcessingType selectProductionProcessingById(String id) {
        return productionProcessingTypeMapper.selectProductionProcessingById(id);
    }

    /**
     * 查询生产加工任务绑定列表
     *
     * @param productionProcessingType 生产加工任务绑定
     * @return 生产加工任务绑定
     */
    @Override
    public List<ProductionProcessingType> selectProductionProcessingList(ProductionProcessingType productionProcessingType) {
        return productionProcessingTypeMapper.selectProductionProcessingList(productionProcessingType);
    }

    /**
     * 新增生产加工任务绑定
     *
     * @param productionProcessingType 生产加工任务绑定
     * @return 结果
     */
    @Override
    public int insertProductionProcessing(ProductionProcessingType productionProcessingType) {
        return productionProcessingTypeMapper.insertProductionProcessing(productionProcessingType);
    }

    /**
     * 修改生产加工任务绑定
     *
     * @param productionProcessingType 生产加工任务绑定
     * @return 结果
     */
    @Override
    public int updateProductionProcessing(ProductionProcessingType productionProcessingType) {
        return productionProcessingTypeMapper.updateById(productionProcessingType);
    }

    /**
     * 批量删除生产加工任务绑定
     *
     * @param ids 需要删除的生产加工任务绑定主键
     * @return 结果
     */
    @Override
    public int deleteProductionProcessingByIds(String ids) {
        return productionProcessingTypeMapper.deleteProductionProcessingByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除生产加工任务绑定信息
     *
     * @param id 生产加工任务绑定主键
     * @return 结果
     */
    @Override
    public int deleteProductionProcessingById(String id) {
        return productionProcessingTypeMapper.deleteProductionProcessingById(id);
    }

    /**
     * 根据时间段物理删除
     *
     * @param productionProcessingType 分拣主表
     */
    @Override
    public int physicalDataDelete(ProductionProcessingType productionProcessingType) {
        if (productionProcessingType.getCreateTime() != null && productionProcessingType.getUpdateTime() != null) {
            return productionProcessingTypeMapper.physicalDataDelete(productionProcessingType);
        } else {
            throw new UtilException("参数为空");
        }
    }
}
